/*
 *
 * Copyright (C) 2021 BigfootACA <bigfoot@classfun.cn>
 *
 * SPDX-License-Identifier: LGPL-3.0-or-later
 *
 */

#ifndef _LOGGER_H
#error include in logger.h
#endif
#define logger_printf_verbose(tag,fmt...)          logger_printf(LEVEL_VERBOSE,tag,fmt)
#define logger_printf_debug(tag,fmt...)            logger_printf(LEVEL_DEBUG,tag,fmt)
#define logger_printf_info(tag,fmt...)             logger_printf(LEVEL_INFO,tag,fmt)
#define logger_printf_notice(tag,fmt...)           logger_printf(LEVEL_NOTICE,tag,fmt)
#define logger_printf_warning(tag,fmt...)          logger_printf(LEVEL_WARNING,tag,fmt)
#define logger_printf_error(tag,fmt...)            logger_printf(LEVEL_ERROR,tag,fmt)
#define logger_printf_crit(tag,fmt...)             logger_printf(LEVEL_CRIT,tag,fmt)
#define logger_printf_alert(tag,fmt...)            logger_printf(LEVEL_ALERT,tag,fmt)
#define logger_printf_emerg(tag,fmt...)            logger_printf(LEVEL_EMERG,tag,fmt)
#define return_logger_printf_verbose(e,tag,fmt...) return_logger_printf(LEVEL_VERBOSE,e,tag,fmt)
#define return_logger_printf_debug(e,tag,fmt...)   return_logger_printf(LEVEL_DEBUG,e,tag,fmt)
#define return_logger_printf_info(e,tag,fmt...)    return_logger_printf(LEVEL_INFO,e,tag,fmt)
#define return_logger_printf_notice(e,tag,fmt...)  return_logger_printf(LEVEL_NOTICE,e,tag,fmt)
#define return_logger_printf_warning(e,tag,fmt...) return_logger_printf(LEVEL_WARNING,e,tag,fmt)
#define return_logger_printf_error(e,tag,fmt...)   return_logger_printf(LEVEL_ERROR,e,tag,fmt)
#define return_logger_printf_crit(e,tag,fmt...)    return_logger_printf(LEVEL_CRIT,e,tag,fmt)
#define return_logger_printf_alert(e,tag,fmt...)   return_logger_printf(LEVEL_ALERT,e,tag,fmt)
#define return_logger_printf_emerg(e,tag,fmt...)   return_logger_printf(LEVEL_EMERG,e,tag,fmt)
#define logger_listen_default()                    logger_listen(DEFAULT_LOGGER)
#define open_socket_logfd_default()                open_socket_logfd(DEFAULT_LOGGER)
#define tlog_emerg(content...)                     logger_printf(LEVEL_EMERG,TAG,content)
#define tlog_alert(content...)                     logger_printf(LEVEL_ALERT,TAG,content)
#define tlog_crit(content...)                      logger_printf(LEVEL_CRIT,TAG,content)
#define tlog_error(content...)                     logger_printf(LEVEL_ERROR,TAG,content)
#define tlog_warn(content...)                      logger_printf(LEVEL_WARNING,TAG,content)
#define tlog_notice(content...)                    logger_printf(LEVEL_NOTICE,TAG,content)
#define tlog_info(content...)                      logger_printf(LEVEL_INFO,TAG,content)
#define tlog_debug(content...)                     logger_printf(LEVEL_DEBUG,TAG,content)
#define tlog_verbose(content...)                   logger_printf(LEVEL_VERBOSE,TAG,content)
#define telog_emerg(content...)                    logger_perror(LEVEL_EMERG,TAG,content)
#define telog_alert(content...)                    logger_perror(LEVEL_ALERT,TAG,content)
#define telog_crit(content...)                     logger_perror(LEVEL_CRIT,TAG,content)
#define telog_error(content...)                    logger_perror(LEVEL_ERROR,TAG,content)
#define telog_warn(content...)                     logger_perror(LEVEL_WARNING,TAG,content)
#define telog_notice(content...)                   logger_perror(LEVEL_NOTICE,TAG,content)
#define telog_info(content...)                     logger_perror(LEVEL_INFO,TAG,content)
#define telog_debug(content...)                    logger_perror(LEVEL_DEBUG,TAG,content)
#define telog_verbose(content...)                  logger_perror(LEVEL_VERBOSE,TAG,content)
#define trlog_emerg(ret,content...)                return_logger_printf(LEVEL_EMERG,ret,TAG,content)
#define trlog_alert(ret,content...)                return_logger_printf(LEVEL_ALERT,ret,TAG,content)
#define trlog_crit(ret,content...)                 return_logger_printf(LEVEL_CRIT,ret,TAG,content)
#define trlog_error(ret,content...)                return_logger_printf(LEVEL_ERROR,ret,TAG,content)
#define trlog_warn(ret,content...)                 return_logger_printf(LEVEL_WARNING,ret,TAG,content)
#define trlog_notice(ret,content...)               return_logger_printf(LEVEL_NOTICE,ret,TAG,content)
#define trlog_info(ret,content...)                 return_logger_printf(LEVEL_INFO,ret,TAG,content)
#define trlog_debug(ret,content...)                return_logger_printf(LEVEL_DEBUG,ret,TAG,content)
#define trlog_verbose(ret,content...)              return_logger_printf(LEVEL_VERBOSE,ret,TAG,content)
#define terlog_emerg(ret,content...)               return_logger_perror(LEVEL_EMERG,ret,TAG,content)
#define terlog_alert(ret,content...)               return_logger_perror(LEVEL_ALERT,ret,TAG,content)
#define terlog_crit(ret,content...)                return_logger_perror(LEVEL_CRIT,ret,TAG,content)
#define terlog_error(ret,content...)               return_logger_perror(LEVEL_ERROR,ret,TAG,content)
#define terlog_warn(ret,content...)                return_logger_perror(LEVEL_WARNING,ret,TAG,content)
#define terlog_notice(ret,content...)              return_logger_perror(LEVEL_NOTICE,ret,TAG,content)
#define terlog_info(ret,content...)                return_logger_perror(LEVEL_INFO,ret,TAG,content)
#define terlog_debug(ret,content...)               return_logger_perror(LEVEL_DEBUG,ret,TAG,content)
#define terlog_verbose(ret,content...)             return_logger_perror(LEVEL_VERBOSE,ret,TAG,content)
#define log_emerg(tag,content...)                  logger_printf(LEVEL_EMERG,tag,content)
#define log_alert(tag,content...)                  logger_printf(LEVEL_ALERT,tag,content)
#define log_crit(tag,content...)                   logger_printf(LEVEL_CRIT,tag,content)
#define log_error(tag,content...)                  logger_printf(LEVEL_ERROR,tag,content)
#define log_warn(tag,content...)                   logger_printf(LEVEL_WARNING,tag,content)
#define log_notice(tag,content...)                 logger_printf(LEVEL_NOTICE,tag,content)
#define log_info(tag,content...)                   logger_printf(LEVEL_INFO,tag,content)
#define log_debug(tag,content...)                  logger_printf(LEVEL_DEBUG,tag,content)
#define log_verbose(tag,content...)                logger_printf(LEVEL_VERBOSE,tag,content)
#define elog_emerg(tag,content...)                 logger_perror(LEVEL_EMERG,tag,content)
#define elog_alert(tag,content...)                 logger_perror(LEVEL_ALERT,tag,content)
#define elog_crit(tag,content...)                  logger_perror(LEVEL_CRIT,tag,content)
#define elog_error(tag,content...)                 logger_perror(LEVEL_ERROR,tag,content)
#define elog_warn(tag,content...)                  logger_perror(LEVEL_WARNING,tag,content)
#define elog_notice(tag,content...)                logger_perror(LEVEL_NOTICE,tag,content)
#define elog_info(tag,content...)                  logger_perror(LEVEL_INFO,tag,content)
#define elog_debug(tag,content...)                 logger_perror(LEVEL_DEBUG,tag,content)
#define elog_verbose(tag,content...)               logger_perror(LEVEL_VERBOSE,tag,content)
#define rlog_emerg(ret,tag,content...)             return_logger_printf(ret,LEVEL_EMERG,tag,content)
#define rlog_alert(ret,tag,content...)             return_logger_printf(ret,LEVEL_ALERT,tag,content)
#define rlog_crit(ret,tag,content...)              return_logger_printf(ret,LEVEL_CRIT,tag,content)
#define rlog_error(ret,tag,content...)             return_logger_printf(ret,LEVEL_ERROR,tag,content)
#define rlog_warn(ret,tag,content...)              return_logger_printf(ret,LEVEL_WARNING,tag,content)
#define rlog_notice(ret,tag,content...)            return_logger_printf(ret,LEVEL_NOTICE,tag,content)
#define rlog_info(ret,tag,content...)              return_logger_printf(ret,LEVEL_INFO,tag,content)
#define rlog_debug(ret,tag,content...)             return_logger_printf(ret,LEVEL_DEBUG,tag,content)
#define rlog_verbose(ret,tag,content...)           return_logger_printf(ret,LEVEL_VERBOSE,tag,content)
#define erlog_emerg(ret,tag,content...)            return_logger_perror(LEVEL_EMERG,ret,tag,content)
#define erlog_alert(ret,tag,content...)            return_logger_perror(LEVEL_ALERT,ret,tag,content)
#define erlog_crit(ret,tag,content...)             return_logger_perror(LEVEL_CRIT,ret,tag,content)
#define erlog_error(ret,tag,content...)            return_logger_perror(LEVEL_ERROR,ret,tag,content)
#define erlog_warn(ret,tag,content...)             return_logger_perror(LEVEL_WARNING,ret,tag,content)
#define erlog_notice(ret,tag,content...)           return_logger_perror(LEVEL_NOTICE,ret,tag,content)
#define erlog_info(ret,tag,content...)             return_logger_perror(LEVEL_INFO,ret,tag,content)
#define erlog_debug(ret,tag,content...)            return_logger_perror(LEVEL_DEBUG,ret,tag,content)
#define erlog_verbose(ret,tag,content...)          return_logger_perror(LEVEL_VERBOSE,ret,tag,content)
